package cn.iocoder.yudao.module.scrm.controller.admin.marketing.vo.visitor;

import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.SliderDesensitize;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

import javax.validation.constraints.NotNull;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT;

@Schema(description = "管理后台 - 营销访客数据 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MarketingVisitorRespVO {

    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20862")
    @ExcelProperty("id")
    private Integer id;

    @Schema(description = "营销内容表id", example = "21028")
    @ExcelProperty("营销内容表id")
    private String contentId;

    @Schema(description = "转发表id", example = "7485")
    @ExcelProperty("转发表id")
    private String transmitId;

    @Schema(description = "访问来源0企微 1微信")
    @ExcelProperty("访问来源0企微 1微信")
    private String source;

    @Schema(description = "来源类型保留", example = "1")
    @ExcelProperty("来源类型保留")
    private String sourceType;

    @Schema(description = "访客昵称", example = "李四")
    @ExcelProperty("访客昵称")
    private String name;

    @Schema(description = "访客电话")
    @ExcelProperty("访客电话")
    //@SliderDesensitize(prefixKeep = 3,suffixKeep = 4, replacer = "!")//脱敏处理
    private String phone;

    @Schema(description = "微信用户唯一 openId")
    private String openId;

    @Schema(description = "访客微信头像", example = "18792")
    @NotNull(message = "微信头像不能为空")
    private String weChatAvatar;


    @Schema(description = "最后访问时间")
    @ExcelProperty("最后访问时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
    private LocalDateTime endLookTime;

    @Schema(description = "累计访问次数", example = "3441")
    @ExcelProperty("累计访问次数")
    private Integer allLookCount;

    @Schema(description = "累计访问时间")
    @ExcelProperty("累计访问时间")
    private Integer allLookTime;

    @Schema(description = "转发次数", example = "10760")
    @ExcelProperty("转发次数")
    private Integer shareCount;

    @Schema(description = "转发浏览人数", example = "32156")
    @ExcelProperty("转发浏览人数")
    private Integer browseCount;

    @Schema(description = "转发浏览量", example = "8234")
    @ExcelProperty("转发浏览量")
    private Integer shareViewCount;

    @Schema(description = "负责人姓名（访客访问那一刻所属负责人）", example = "王五")
    @ExcelProperty("负责人姓名（访客访问那一刻所属负责人）")
    private String principalName;

    @Schema(description = "链路保留id", example = "12734")
    @ExcelProperty("链路保留id")
    private String linkId;

    @Schema(description = "保留状态", example = "2")
    @ExcelProperty("保留状态")
    private String status;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
    private LocalDateTime createTime;

}